package ASAExpression;

import exceptions.ExecutionException;

/**
 * Classe abstraite permettant de representer 
 * une expression
 * @author D.romain
 * @author O.riad
 */
public abstract class ASAExpr {
    
    /**
     * Permet de recupere l'expression de gauche (ou l'unique expression)
     * @return ASAExpr 
     */
    public abstract ASAExpr getExpr1();
    
    /**
     * Permet de recupere l'expression de droite
     * @return ASAExpr
     */
    public abstract ASAExpr getExpr2();
    
    /**
     * Permet l'affichage de l'expression 
     * @return Affichage de type explorateur
     * @throws ExecutionException 
     */
    public abstract String getLabelExplorateur() throws ExecutionException ;
    
    /**
     * Evalue l'expression (rend effectif l'opération)
     * @return resultat de l'évalutation
     * @throws ExecutionException 
     */
    public abstract int evalue() throws ExecutionException;
}
